使用QT实现FTP客户端与服务端(1) 您所在的位置:网站首页 qt qftp上传文件权限不够 使用QT实现FTP客户端与服务端(1)

使用QT实现FTP客户端与服务端(1)

2024-07-15 18:32| 来源: 网络整理| 查看: 265

1.实现FTP客户端

作为FTP客户端,需要主动发起连接至服务端所在ip的默认21号端口,连接步骤与数据交互如下: 1.客户端链接服务器端口 2.客户端分步输入用户名密码 3.(可选)客户端输入数据传输模式,默认为被动模式,可主动切换为主动模式(在一些机器上被禁用,需手动开启) 4.输入操作指令 5.根据数据传输模式建立数据连接。(5*进行数据传输) 6.退出 1)h文件

#include #include #include #include #include #include "string.h" class FtpClientCollecor : public QObject { Q_OBJECT public: explicit FtpClientCollecor(QObject *parent = nullptr); public: void doConnect(); void sendDataMsg(const std::string &msg, const int &length); private slots: void ClientPORTCtrlRecvData(); void ClientRecvData(); void ClientPASVCtrlRecvData(); void ConnectionFromClient(); void serverErrorConnection(); private: QTcpSocket *m_tcpSocket; QTcpServer *m_tcpServer; QTcpSocket *m_tcpDataSocket; QString m_userName; QString m_passWord; QString m_serverIP; int m_serverPort; int i; // 交互次数 };

2)cpp文件

#include "ftpmanager.h" #include #include FtpClientCollecor::FtpClientCollecor(QObject *parent):QObject(parent) { m_tcpServer = new QTcpServer(this); m_tcpSocket = new QTcpSocket(this); m_tcpDataSocket = new QTcpSocket(this); connect(m_tcpServer, SIGNAL(newConnection()), this, SLOT(ConnectionFromClient())); // connect(m_tcpSocket, SIGNAL(readyRead()), this, SLOT(ClientPORTCtrlRecvData())); connect(m_tcpSocket, SIGNAL(readyRead()), this, SLOT(ClientPASVCtrlRecvData())); i = 0; doConnect(); } void FtpClientCollecor::doConnect() { m_serverIP = "xxx.xxx.xxx.xxx"; m_serverPort = 21; if (m_serverIP.isEmpty()) qCritical() connectToHost(QHostAddress(m_serverIP), m_serverPort); if (!m_tcpSocket->waitForConnected(30000)) { qDebug() bytesAvailable()) return; QByteArray recvDatas = m_tcpSocket->readAll(); qDebug() readAll(); qDebug() isListening()) { m_tcpServer->close(); } if (!m_tcpDataSocket->bytesAvailable()) return; QByteArray recvDatas = m_tcpDataSocket->readAll(); // 转换中文字符 QTextCodec *tc = QTextCodec::codecForName("GBK"); QString recvDataString = tc->toUnicode(recvDatas); qDebug()


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有